﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Class_DTO;
using Class_BUS;
using Class_DAO;

namespace Project_QuangCaoABC
{
    public partial class frmNhanVien : Form
    {
        public frmNhanVien()
        {
            InitializeComponent();
        }
        bool them = false;
        bool update = false;
       
        private void frmNhanVien_Load(object sender, EventArgs e)
        {
            dGW_DSNV.ReadOnly = true;

            txtDiaChi.ReadOnly = true;
            txtDienThoai.ReadOnly = true;           
            txtTenNV.ReadOnly = true;
            txtMatKhau.ReadOnly = true;
            txtTenDangNhap.ReadOnly = true;

            HienThiDS_NhanVien();

            them = false;
            update = false;
        }
        public void HienThiDS_NhanVien()
        {
            dGW_DSNV.DataSource = NhanVienBUS.LoadDS_NhanVien();
        }
        private void xoatext()
        {
            txtMaNV.Text = "";
            txtTenNV.Text = "";
            txtMatKhau.Text = "";
            txtTenDangNhap.Text = "";
            txtDiaChi.Text = "";
            txtDienThoai.Text = "";
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            xoatext();

            txtDiaChi.ReadOnly = false;
            txtDienThoai.ReadOnly = false;
            txtMatKhau.ReadOnly = false;
            txtTenNV.ReadOnly = false;
            txtTenDangNhap.ReadOnly = false;
            them = true;
            txtTenNV.Focus();

            btnLuu.Enabled = true;
            btnSua.Enabled = false;
            btnXoa.Enabled = false;
            btnThem.Enabled = false;
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            btnLuu.Enabled = true;
            if (dGW_DSNV.SelectedRows.Count <= 0)
            {
                MessageBox.Show("Chưa chọn nhân viên", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                txtDiaChi.ReadOnly = false;
                txtDienThoai.ReadOnly = false;
                txtMatKhau.ReadOnly = false;
                txtTenNV.ReadOnly = false;
                txtTenDangNhap.ReadOnly = false;
                
                txtTenNV.Focus();

                btnThem.Enabled = false;
                btnXoa.Enabled = false;
                btnSua.Enabled = false;

                update = true;
            }
        }

        private void btnBoQua_Click(object sender, EventArgs e)
        {
            xoatext();
            btnThem.Enabled = true;
            btnSua.Enabled = true;
            btnXoa.Enabled = true;
            btnLuu.Enabled = true;

            txtDiaChi.ReadOnly = true;
            txtDienThoai.ReadOnly = true;
            txtTenNV.ReadOnly = true;
            txtMatKhau.ReadOnly = true;
            txtTenDangNhap.ReadOnly = true;

        }

        Class_DAO.NhanVienDAO thaotac = new Class_DAO.NhanVienDAO();
        private void btnLuu_Click(object sender, EventArgs e)
        {
            btnLuu.Enabled = false;
            btnSua.Enabled = true;
            btnThem.Enabled = true;
            btnXoa.Enabled = true;
            try
            {
                if (ValidForm() == false) return;
                if (them) // them
                {
                    string tenNV = txtTenNV.Text;
                    string diaChi = txtDiaChi.Text;
                    string soDT = txtDienThoai.Text;
                    string matKhau = txtMatKhau.Text;
                    string tenDangNhap = txtTenDangNhap.Text;
                    NhanVienBUS nvBUS = new NhanVienBUS();

                    NhanVienDTO nvDTO = new NhanVienDTO(tenNV, soDT, diaChi, tenDangNhap, matKhau);

                    Class_BUS.NhanVienBUS.ThemNhanVien_BUS(nvDTO);
                    HienThiDS_NhanVien();
                    them = false;
                    MessageBox.Show("Thêm thành công", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;

                }
                if (update)// sua
                {
                    thaotac.sua(int.Parse(txtMaNV.Text), txtTenNV.Text, txtDienThoai.Text, txtDiaChi.Text,  txtTenDangNhap.Text, txtMatKhau.Text);
                    HienThiDS_NhanVien();
                    update = false;
                    MessageBox.Show("Sửa Thành Công.", "Thông Báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }           
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            //btnXoa.Enabled = false;
            if (dGW_DSNV.SelectedRows.Count <= 0)
            {
                MessageBox.Show("Chưa chọn nhân viên", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                try
                {
                    DialogResult a = MessageBox.Show("Bạn Muốn Xóa Thông Tin Về Khách Hàng Này?", "Cảnh Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                    if (a == DialogResult.Yes)
                    {
                        thaotac.xoa(int.Parse(txtMaNV.Text));
                        HienThiDS_NhanVien();
                        MessageBox.Show("Xóa Thành Công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        xoatext();
                    }
                }
                catch
                {
                    MessageBox.Show("Không thể xóa mã này", "Thông bao");
                }
                
            }
            
        }
        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();

        }
        private void dGW_DSNV_SelectionChanged(object sender, EventArgs e)
        {
            if (dGW_DSNV.SelectedRows.Count > 0)
            {
                txtMaNV.Text = dGW_DSNV.SelectedRows[0].Cells[0].Value.ToString();
                txtTenNV.Text = dGW_DSNV.SelectedRows[0].Cells[1].Value.ToString();
                txtDienThoai.Text = dGW_DSNV.SelectedRows[0].Cells[2].Value.ToString();
                txtDiaChi.Text = dGW_DSNV.SelectedRows[0].Cells[3].Value.ToString();
                txtTenDangNhap.Text = dGW_DSNV.SelectedRows[0].Cells[4].Value.ToString();
                txtMatKhau.Text = dGW_DSNV.SelectedRows[0].Cells[5].Value.ToString();

            }
        }

        private void btnTimKiem_Click(object sender, EventArgs e)
        {   
            if (txtTenNV.Text.Trim() == string.Empty)
             {
                    MessageBox.Show("Bạn chưa nhập thông tin", "Thông báo");
             }
             else
             {
                    dGW_DSNV.DataSource = NhanVienBUS.getDanhSachNV_theoten(txtTimTenNV.Text);
             }
            
        }
        private bool ValidForm()
        {
            try
            {

                if (txtTenNV.Text.Trim() == string.Empty)
                {
                    MessageBox.Show("Bạn phải nhập tên nhân viên", "Thông báo!");
                    txtTenNV.Focus();
                    btnLuu.Enabled = true;
                    return false;
                }
                if (txtDienThoai.Text.Trim() == string.Empty)
                {
                    MessageBox.Show("Bạn phải nhập số điện thoại", "Thông báo!");
                    txtDienThoai.Focus();
                    btnLuu.Enabled = true;
                    return false;
                }
                if (txtDiaChi.Text.Trim() == string.Empty)
                {
                    MessageBox.Show("Bạn phải nhập địa chỉ", "Thông báo!");
                    txtDiaChi.Focus();
                    btnLuu.Enabled = true;
                    return false;
                }
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }

        private void btnInNV_Click(object sender, EventArgs e)
        {
            frmReportDSNhanVien rnv = new frmReportDSNhanVien();
            rnv.Show();
        }
        

        
    }
}
